
#include <stdio.h>

#define N 100


/* 把一个二进制数转换成对应的十进制数 */
int BToD(char str[]) {
    int i, d;  // 定义循环计数变量 i 和结果变量 d
    d = 0;     // 将结果变量 d 初始化为0

    // 遍历字符串，直到遇到字符串结束符 '\0'
    for (i = 0; str[i] != '\0'; i++) {
        // 每次迭代中，将当前的 d 值乘以2，然后加上当前字符对应的数字值
        d = d * 2 + (str[i] - '0');
    }

    return d;  // 返回最终的十进制结果
}


int main(void) {
    char str1[N], str2[N], str3[N];
    int a, b, c, temp;
    printf("请输入三个二进制数：\n");
    scanf("%s%s%s", str1, str2, str3); /* 输入三个二进制数 */

    a = BToD(str1);        /* 函数调用三次，得到三个十进制数 */
    b = BToD(str2);
    c = BToD(str3);

    if (a > b) {
        temp = a;
        a = b;
        b = temp;
    }
    if (a > c) {
        temp = a;
        a = c;
        c = temp;
    }
    if (b > c) {
        temp = b;
        b = c;
        c = temp;
    }

    printf("%d %d %d\n", a, b, c);
    return 0;
}
